ROS2初体验之SLAM与导航仿真 | 您所在的位置:网站首页 › ros2 仿真 › ROS2初体验之SLAM与导航仿真 |
ROS2初体验之SLAM与导航仿真
![]() 早在2015年,ROS就已经发布了第一个ROS2.0的alpha版本,现在已经发布有五个正式版了。考虑到要与时俱进嘛,所以就安装了ROS2和gazebo来学习下ROS2相关的操作,过来和大家分享下。 安装ROS2 ROS2现在有5个正式版本,因为在第四个正式版dashing的时候又进行了较大的代码改动,且官方支持维护两年,支持到2021年,所以我就选择了dashing进行安装。
[caption id="" align="aligncenter" width="637"]
下面介绍下大致的安装使用过程。
首先设置语言环境: $ sudo locale-gen en_US en_US.UTF-8 $ sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 $ export LANG=en_US.UTF-8
添加软件源: $ sudo apt update && sudo apt install curl gnupg2 lsb-release $ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add – $ sudo sh -c 'echo "deb [arch=amd64,arm64] http://packages.ros.org/ros2/ubuntu `lsb_release -cs` main" > /etc/apt/sources.list.d/ros2-latest.list'
安装ROS2软件包: $ sudo apt update $ sudo apt install ros-dashing-desktop
设置环境变量: $ echo "source /opt/ros/dashing/setup.bash" >> ~/.bashrc
安装argcomplete(可选): ROS 2命令行工具使用argcomplete自动完成。因此,如果要自动补全,则必须安装,个人建议安装。 $ sudo apt install python3-argcomplete
安装完成后可以用自带的例程测试下ROS2是否安装成功: [caption id="" align="aligncenter" width="741"] 安装gazebo ROS2默认是不包含Gazebo的,所以需要自行安装。同时,ROS2只能使用gazebo9及之后版本,这里我就选择安装gazebo9。Gazebo官网提供了两种安装方式,脚本安装或者是逐步安装。 脚本安装 $ curl -sSL http://get.gazebosim.org | sh 逐步安装 设置软件源: $ sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
添加key: $ wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
安装gazebo9: $ sudo apt-get update $ sudo apt-get install gazebo9*
在安装过程中,我遇到了网络不好的问题,有下载失败的概率,所以个人推荐逐步安装。 turtlebot3测试 为了熟悉下ROS2的基本操作,我用turtlebot3在gazebo中进行仿真,以熟悉一些来了解ROS2的基本操作。
首先和ROS1一样建立工作空间turtlebot3_ws,然后下载源代码放到src目录中,注意要选择dashing-devel的分支,gitclone可以使用-b指定分支。下面是所需的相关源码链接: https://github.com/ROBOTIS-GIT/turtlebot3/tree/dashing-devel https://github.com/ROBOTIS-GIT/turtlebot3_msgs/tree/dashing-devel https://github.com/ROBOTIS-GIT/turtlebot3_simulations/tree/dashing-devel
最后src中应该有以下文件:
安装编译工具: $ sudo apt install python3-colcon-common-extensions
进入turtlebot3_ws下编译: $ colcon build
设置环境变量: $ echo "~/turtlebot3/install/setup.bash" >> ~/.bashrc $ echo " export TURTLEBOT3_MODEL= burger" >> ~/.bashrc #turtlebot3有burger,、waffle、waffle_pi三种,所以需要指定型号
安装相关的一些功能包: $ sudo apt install ros-dashing-gazebo-* ros-dashing-cartographer* ros-dashing-navigation2 ros-dashing-nav2-* python3-vcstool
这里我记不太清楚具体安装了哪些功能包了,可能有些已经包含ros-dashing-desktop中了,也有可能还缺少某些功能包。如果您遇到了什么问题,可以在评论中指出。
然后需要把turtlebot3的模型文件添加模型文件至gazebo的models文件夹中,即将turtlebot3_gazebo/models中的全部文件复制到~/.gazebo/models中。.gazebo文件夹为隐藏文件夹,可在home下使用ctrl+h快捷键显示。若.gazebo中没有models文件夹,可自行创建该文件夹。如下图所示:
建图&导航 基本的安装都已经完成了,那么就来进行测试吧。
首先打开第一个终端,运行gazebo环境: $ ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
然后打开第二个终端,使用Cartographer进行建图: $ ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:=True
再打开第三个终端运行键盘控制节点: $ ros2 run turtlebot3_teleop teleop_keyboard
然后你就能愉快的建图了。
完成建图后,再打开一个终端保存地图: $ ros2 run nav2_map_server map_saver -f ~/turtlebot3_ws/src/turtlebot3_navigation2/map/map
然后关闭cartographer和键盘程序,再打开navigation2导航程序: $ ros2 launch turtlebot3_navigation2 navigation2.launch.py use_sim_time:=True
之后和ROS1中的操作一致,先使用2D Pose Estimate对机器人的位置进行初始化,之后就可以用2D New Goal指定目标进行导航了。
经过一番折腾,终于搞定了ROS2的安装与使用。同时也感受到了和ROS1的一些直管的区别: ①最直接的,编译系统换了,编译命令也相应改变了 ; ② 同时launch等基本指令也换成了对应的ros2指令; ③取消了ROSMaster,更加方便各个节点的分布式布置。 另外,ROS2还有一些其他的特点,比如支持多系统之类的暂时就没有体现出来。ROS2的具体体会还是需要多多使用之后才能感受到啊,如果大家有什么问题,也欢迎大家在评论区指出,一起交流学习。 机器人gazeboROS2原创文章作者:谦墨。如若转载,请注明出处:古月居 http://admin.guyuehome.com/5522 打赏 0 点赞 8 收藏 2 分享 微信 微博 QQ 图片 上一篇:URDF物理参数解释及生成 下一篇:ROS2GO开箱上手 |
CopyRight 2018-2019 实验室设备网 版权所有 |